/**
 * 处理一些后台返回的下拉列表，树，checkbox或者radio的选项那等
 * 使用场景，部分组件，可能是写死的，也可能是后台给的，或者字典拿的，可以用这个hooks
 **/

import { useState, useMemo } from 'react'

const useAsyncOptions = (options) => {
    const [asyncOptions, setAsyncOption] = useState([])
    useMemo(async () => {
        if (typeof options === 'string') {
            const result = await window.$api[options]()
            setAsyncOption(result)
        }
        if (typeof options === 'function') {
            setAsyncOption(options())
        }
        if (Array.isArray(options)) {
            setAsyncOption(options)
        }
    }, [options])
    return { asyncOptions }
}

export default useAsyncOptions